home *** CD-ROM | disk | FTP | other *** search
- #! /usr/bin/env python
- # (Force the script to use the latest build.)
- #
- # test_parser.py
-
- import parser, traceback
-
- _numFailed = 0
-
- def testChunk(t, fileName):
- global _numFailed
- print '----', fileName,
- try:
- ast = parser.suite(t)
- tup = parser.ast2tuple(ast)
- # this discards the first AST; a huge memory savings when running
- # against a large source file like Tkinter.py.
- ast = None
- new = parser.tuple2ast(tup)
- except parser.ParserError, err:
- print
- print 'parser module raised exception on input file', fileName + ':'
- traceback.print_exc()
- _numFailed = _numFailed + 1
- else:
- if tup != parser.ast2tuple(new):
- print
- print 'parser module failed on input file', fileName
- _numFailed = _numFailed + 1
- else:
- print 'o.k.'
-
- def testFile(fileName):
- t = open(fileName).read()
- testChunk(t, fileName)
-
- def test():
- import sys
- args = sys.argv[1:]
- if not args:
- import glob
- args = glob.glob("*.py")
- map(testFile, args)
- sys.exit(_numFailed != 0)
-
- if __name__ == '__main__':
- test()
-
- #
- # end of file
-